![]() Kanaladapter und Plattenarrayvorrichtung
专利摘要:
Es ist eine Aufgabe der Erfindung, einen Kanaladapter und eine Plattenarrayvorrichtung zu schaffen, die Teildaten erneut über ein IP-Netzwerk übertragen können und die so konfiguriert sind, dass sie einen Datengarantiervorgang für die Teildaten ausführen können. CHAs übertragen Daten an Hostcomputer. Die CHAs berechnen einen Eingangs-Garantiecode, wenn sie die Daten von einem Cachespeicher in einen lokalen Speicher einspeichern. Die CHAs erzeugen einen Ausgangs-Garantiecode, wenn sie die Daten vom lokalen Speicher lesen und sie an eine Porteinheit übertragen. Wenn nach der Übertragung der Daten eine Neuübertragung von Teildaten angefordert wird, über die CHAs die Teildaten an die Hostcommputer. Danach berechnen die CHAs den Ausgangs-Garantiecode der Daten erzeugt, und sie vergleichen ihn mit dem zuvor berechneten Eingangs-Garantiecode. Wenn beide Codes übereinstimmen, ist garantiert, dass die Datenübertragung normal ausgeführt wurde. 公开号:DE102004013111A1 申请号:DE200410013111 申请日:2004-03-17 公开日:2005-07-07 发明作者:Hidehiro Nagaya;Homare Okamoto 申请人:Hitachi Ltd; IPC主号:G06F3-06
专利说明:
[0001] DieseAnmeldung steht in Zusammenhang mit der am 25. November 2003 eingereichtenjapanischen Patentanmeldung Nr. 2003-393647, deren gesamte Offenbarung hierdurch Bezugnahme eingeschlossen wird, und sie beansprucht derenPriorität. [0002] DieErfindung betrifft eine Plattenarrayvorrichtung und einen Kanaladapter. [0003] EinePlattenarrayvorrichtung ist eine Speichersteuervorrichtung großer Kapazität, bei dermehrere Speicherplatten in einem Array angeordnet sind und die z.B. auf RAID(Redundant Array of Independent Inexpensive Disks)-Basisaufgebaut ist. Zum Beispiel werden Festplattenvorrichtungen undHalbleiter speicher-Vorrichtungen als Speichervorrichtungen verwendet.Im physikalischen Speicherbereich, den jede Speichervorrichtungbereitstellt, wird ein logischer Datenbereich gebildet. Ein Hostcomputerwie ein Server zu Geschäftszweckengibt einen vorbestimmten Befehl aus, durch den er Daten von denlogischen Datenbereichen lesen und Daten in sie schreiben kann. [0004] EinePlattenarrayvorrichtung, die Teil eines SAN (Storage Area Network)ist, führteine Datenübertragungin Blockeinheiten entsprechend einem Faserkanalprotokoll aus. EinSAN gemäß einemFaserkanal wird als FC-SAN bezeichnet. Bei einem FC-SAN kann eineDatenübertragunghoher Geschwindigkeit unter Verwendung eines faseroptischen Kabelsoder eines Metallkabels ausgeführt werden.Auch kann unter Verwendung eines Faserkanalschalters eine Gewebestrukturerzielt werden, und es könnenzahlreiche Plattenarrayvorrichtungen und zahlreiche Hostcomputermiteinander verbunden werden. [0005] EinGesichtspunkt betreffend eine Verbesserung der Zuverlässigkeitvon Plattenarrayvorrichtungen besteht darin, ob das Senden und Empfangen derDaten genau ausgeführtwerden könnenoder nicht. Aus diesem Grund wird bei Plattenarrayvorrichtungeneine Technologie wie LRC (Longitudinal Redundancy Check), CRC (CyclicRedundancy Check) und ECC (Error-Correcting Code) verwendet. [0006] Esist auch eine Technik bekannt (US-Patent Nr. 5,561,672), die prüft, ob derDatenempfang zwischen einer Kanaleinheit, die eine Datenkommunikationmit einem Hostcomputer ausführt,und einer Plattenschnittstelle-Steuerplatine, die Datenkommunikationmit einer Magnetplatte ausführt,genau ausgeführtwurde oder nicht. Bei dieser Technologie sind ein Datenpuffer undeine Paritätsprüfschaltungjeweils auf drei Steuerplatinen angeordnet: der Plattenschnittstelle-Steuerplatine, einerKanalschnittstelle-Steuerplatine und einer Kanaleinheit. Wenn Daten zwischenden Steuerplatinen übertragenwerden, wird durch jede Steuerplatine des Senders und des Empfängers einejeweilige Paritätsprüfung ausgeführt, derSpeicherinhalt des Datenpuffers des Senders und der Speicherinhaltdes Datenpuffers des Empfängerswerden verglichen, und es wird ermittelt, ob die Daten korrekt übertragenwurden oder nicht. [0007] Wenndie Daten von einer Plattenarrayvorrichtung in einem FC(Fibre Channel)-SANan einen Hostcomputer übertragenwerden, werden sie als Rahmen mit ungefähr 2 KB an Blockdaten an ihngeliefert. Der Rahmen des Faserkanals ist mit den Start des Rahmens(SOF) repräsentierenderInformation, Rahmenkopfinformation, einem Datenfeld, einem CRC unddas Ende des Rahmens (EOF) repräsentierenderInformation versehen. Im Datenfeld können 0 bis 2112 Bytes an Datengespeichert werden. Von der Plattenarrayvorrichtung werden auf eineAnforderung vom Hostcomputer hin ein Rahmen oder mehrere an denHostcomputer geliefert. [0008] EinFC-SAN ist ein Netzwerk, in dem eine Datenübertragung hoher Geschwindigkeitmöglichist und das im Vergleich zu einem IC-Netzwerk stabil ist. Demgemäß bestehteine geringe Möglichkeitdafür, dassgelieferte Daten währendder Übertragungverloren gehen und dass nicht behebbare Fehler in den durch denHostcomputer empfangenen Daten entstehen. Auf Grund dieser Umstände istein FC-SAN so konfiguriert, dass es alle Daten neu sendet, wenn ineinem Teil der gelieferten Daten eine Störung auftrat. [0009] Inden letzten Jahren wurden breitbandige Netzwerksystem auf Grundlagevon TCP/IP (Transmission Control Protocol/Internet Protocol), wiedas Internet und das Intranet, weit verbreitet, und es wurde eineTechnologie vorgeschlagen, die die Verschmelzung zwischen IP(InternetProtocol)-Netzwerken und Speichersystemen (Plattenarrayvorrichtungen)verbessert. Ein SAN auf IP-Basis wird als IP-SAN bezeichnet. EineTeehnologie, bei der SCSI(Small Computer System Interface)-Befehlssatz seriellals TCP/IP-Paket ausgebildet wird, und eine Plattenarrayvorrichtungdirekt mit einem IP-Netzwerk verbunden wird, ist als ein Modus einesIP-SAN bekannt. Diese Technologie ist als iSCSI(Internet SCSI) oderSCSI überIP bekannt. [0010] EinIP-Netzwerk ist ein komplexes Netzwerk, das aus mehreren Servern,Routern und Schaltern konfiguriert ist, und die Bandbreite und derBelastungsgrad ändernsich dauernd. Fürvon einem Sender an einen Empfängergelieferte Pakete besteht keine Garantie für das Eintreffen in der Sendereihenfolge,und es existieren Fälle,bei denen alle oder einige Pakete während der Übertragung verloren gehen.So ist ein TCP/IP-Netzwerk so konfiguriert, dass es dazu in derLage ist, eine teilweise Neuübertragungnur verlorener Daten anzufordern, wenn einige Daten der Reihe verlorengegangen sind oder ein Fehler aufgetreten ist. [0011] Wenneine Plattenarrayvorrichtung direkt mit einem IP-Netzwerk gekoppeltist, wird der Unterschied im technischen Aufbau zwischen dem außerhalbder Plattenarrayvorrichtung verwendeten Protokoll (TCP/IP) und deminnerhalb derselben verwendeten Protokoll (FC) zu einem Problem.Das heißt, dassdann, wenn vom Hostcomputer hinsichtlich eines Teils der Daten innerhalbeines Rahmens eine Neuübertragungangefordert wird, die angeforderten Daten selbst geliefert werdenkönnen,jedoch die Tatsache nicht garantiert werden kann, das die Teildaten diekorrekten Daten sind. In einem Faserkanal kann, da ein CRC hinsichtlichaller Rahmen angebracht ist, ein Datengarantiervorgang dann hinsichtlichDaten nicht ausgeführtwerden kann, wenn ein Teil der Daten innerhalb des Rahmens neu zu übertragenist. [0012] DieErfindung erfolgte angesichts der oben beschriebenen Probleme, undes ist eine Aufgabe derselben, eine Plattenarrayvorrichtung undeinen Kanaladapter zu schaffen, die Teildaten garantieren können, wennein Teil von Daten an eine Vorrichtung auf höherer Ebene gesendet wird.Gemäß eineranderen Erscheinungsform der Erfindung sind eine Plattenarrayvorrichtungund ein Kanaladapter geschaffen, die einen Datengarantiervorgangselbst dann ausführenkönnen,wenn Daten mit kleinerer Menge als der Einheit, der ein Garantiecodezugeordnet ist, gesendet wird. Weitere Aufgaben der Erfindung gehenaus der spätererörtertenBeschreibung der Ausführungsformenhervor. [0013] Umdie oben genannten Probleme zu lösen, istein erfindungsgemäßer Kanaladapterein solcher, wie er in einer Plattenarrayvorrichtung verwendet wirdund einen Datenaustausch mit einer Vorrichtung auf höherer Ebenesteuert, wobei der Kanaladapter übereinen internen Speicher, eine Garantiecode-Berechnungseinheit, eine Kommunikationseinheitund eine Steuereinheit verfügt.Der interne Speicher speichert Daten von einem externen Speicher.Die Garantiecode-Berechnungseinheit berechnet einen Eingabe-Garantiecodehinsichtlich der in den internen Speicher eingegebenen Daten, undsie berechnet einen Ausgabe-Garantiecode hinsichtlich der aus dem internenSpeicher gelesenen Daten, wobei die Garantiecodes in der Garantiecode-Berechnungseinheit aufbewahrtwerden können.Die Kommunikationseinheit überträgt die ausdem internen Speicher gelesenen Daten an die Vorrichtung auf höherer Ebene. WennTeildaten der Daten erneut an die Vorrichtung auf höherer Ebenezu übertragensind, verwendet die Steuereinheit die Kommunikationseinheit zum Übertragender Teildaten an die Vorrichtung auf höherer Ebene, sie vergleichtden Eingangs-Garantiecode und den durch die Garantiecode-Berechnungseinheit hinsichtlichder Daten neu berechneten Ausgangs-Garantiecode, und sie ermittelt,dass die Übertragungder Daten normal ausgeführtwurde, wenn beide Garantiecodes übereinstimmen. [0014] DieVorrichtung auf höhererEbene ist ein Computer, der eine Plattenarrayvorrichtung über ein Kommunikationsnetzwerkverwendet und als PC, als Workstation, als Server, als Großrechneroder als tragbares Informationsterminal konfiguriert ist. Der interneSpeicher ist innerhalb des Kanaladapters angebracht, und es istz. B. ein lesbarer/schreibbarer Halbleiterspeicher (RAM: Direktzugriffsspeicher). Derinterne Speicher kann auch flüchtigeroder ein nichtflüchtigerSpeicher sein. Der externe Speicher ist ein außerhalb des Kanals angebrachterSpeicher, der z. B. ein Cachespeicher sein kann. Daten, die auf eineAnforderung von der Vorrichtung auf höherer Ebene hin aus dem externenSpeicher gelesen werden, werden im internen Speicher abgespeichertund von diesem überdie Kommunikationseinheit an die Vorrichtung auf höherer Ebene übertragen.Die Garantiecode-Berechnungseinheit berechnet Garantiecodes, undbewahrt sie auf, wenn Daten in den internen Speicher eingegebenwerden (Schreiben von Daten) und wenn Daten aus ihm ausgegeben werden (Lesenvon Daten). [0015] WennDaten an die Vorrichtung auf höherer Ebene übertragenwerden, vergleicht die Steuereinheit den Eingangs-Garantiecode,wie er berechnet wird, wenn Daten in den internen Speicher eingespeichertwerden, mit dem Ausgangs-Garantiecode, der berechnet, wenn Datenaus dem internen Speicher gelesen werden, wodurch die Steuereinheitermitteln kann, ob eine normale Datenübertragung ausgeführt wurdeoder nicht. [0016] Wennin einem Teil der an die Vorrichtung auf höherer Ebene übertragenenDaten eine Störung (fehlendePaketzustellung oder Datenfehler) aufgetreten ist, wird der Teil(Teildaten) der übertragenen Daten,in dem die Störungaufgetreten ist, erneut an die Vorrichtung auf höherer Ebene übertragen.In diesem Fall überträgt die Steuereinheitals Erstes die gewünschtenTeildaten überdie Kommunikationseinheit an die Vorrichtung auf höherer Ebene,danach berechnet sie erneut den Ausgangs-Garantiecode aller im internenSpeicher gespeicherten Daten, und sie vergleicht diesen erneut berechnetenAusgangs-Garantiecode mit dem Eingangs-Garantiecode. Wenn beideGarantiecodes übereinstimmen, ermitteltdie Steuereinheit, dass normale Teildaten übertragen wurden. Hierbei bedeutet "beide Garantiecodesstimmen überein" einen Zustand, deranzeigt, dass Daten entsprechend einem Vergleich beider Garantiecodesnormal sind, und dies beinhaltet einen Fall, bei dem beide Garantiecodes übereinstimmen. [0017] Aufdiese Weise kann die Steuereinheit indirekt einen Datengarantiervorgangfür dieTeildaten dadurch ausführen,dass sie als Erstes die angeforderten Teildaten überträgt, danach den Ausgangs-Garantiecodehinsichtlich aller Daten einschließlich der Teildaten erneutberechnet und dann den Ausgangs-Garantiecode mit dem berechneten Eingangs-Garantiecodevergleicht. Demgemäß kann selbstunter Verwendung einer Garantiecode-Berechnungseinheit, die einenEingangs- und einen Ausgangs-Garantiecode hinsichtlich aller ineinem Rahmen abgespeicherter Daten berechnet, ein Datengarantiervorgangfür Teildatenausgeführtwerden. Demgemäß ist diesdann effektiv, wenn ein Datenaustausch zwischen dem Garantiecodeund der Vorrichtung auf höhererEbene gemäß einem TCP/IP-Protokoll ausgeführt wirdund ein Datenaustausch zwischen dem Kanaladapter und dem externenSpeicher entsprechend einem Faserkanalprotokoll ausgeführt wird. [0018] Essei darauf hingewiesen, dass fürdas Protokoll zwischen dem Kanaladapter und dem externen Speicherkeine Beschränkungauf ein Faserkanalprotokoll besteht. Auch besteht für das Protokollzwischen dem Kanaladapter und der Vorrichtung auf höherer Ebenekeine Beschränkungauf ein TCP/IP-Protokoll. [0019] Wenndie Teildaten erneut an die Vorrichtung auf höherer Ebene zu übertragensind, kann die Steuereinheit (1) die Kommunikationseinheit zum Übertragender Teildaten an die Vorrichtung auf höherer Ebene verwenden, (2)die Daten vom internen Speicher lesen und eine Scheinübertragungder Daten an die Kommunikationseinheit ausführen, (3) die Garantiecode-Berechnungseinheitdazu verwenden, den Ausgangs-Garantiecode hinsichtlich der blind übertragenenDaten neu zu berechnen, (4) den neu berechneten Ausgangs-Garantiecodemit dem Eingangs-Garantiecode vergleichen, wie er berechnet wird,wenn die Daten in den internen Speicher eingespeichert werden, und(5) die Vorrichtung auf höherer Ebenedarüberinformieren, dass die Übertragung derTeildaten normal ausgeführtwurde, wenn der neu berechnete Ausgangs-Garantiecode und der Eingangs-Garantiecode übereinstimmen,und sie kann die Vorrichtung auf höherer Ebene darüber informieren,dass die Übertragungder Teildaten nicht normal ausgeführt wurde, wenn der neu berechneteAusgangs-Garantiecode und der EingangsGarantiecode nicht übereinstimmen. [0020] Wenndie Teildaten neu zu übertragensind, werden alle Daten einschließlich der Teildaten vom internenSpeicher gelesen und blind an die Kommunikationseinheit übertragen.Hierbei bedeutet eine Blindübertragungeine Übertragung,der Form halber, der Daten des internen Speichers an die Kommunikationseinheitzum Berechnen des Ausgangs-Garantiecodes, und die in die Kommunikationseinheiteingegebenen Daten werden verworden, ohne dass sie an die Vorrichtungauf höhererEbene übertragen würden. [0021] Alternativkann dann, wenn die Teildaten erneut an die Vorrichtung auf höherer Ebenezu übertragensind, die Steuereinheit (1) Teildaten aus dem internen Speicherlesen und diese an die Kommunikationseinheit übertragen, um dadurch die Teildaten andie Vorrichtung auf höhererEbene zu übertragen, (2)die Garantiecode-Berechnungseinheit dazu verwenden, einen Teilausgangs-Garantiecodehinsichtlich der aus dem internen Speicher gelesenen Teildaten zuberechnen, (3) Bestätigen,dass der Teilausgangs-Garantiecode und der Eingangs-Garantiecode,wie er berechnet wird, wenn die Daten in den internen Speicher eingespeichertwerden, nicht übereinstimmen,(4) die Daten aus dem internen Speicher lesen und sie blind an dieKommunikationseinheit übertragen,(5) die Garantiecode-Berechnungseinheit dazu verwenden, den Ausgangs-Garantiecode hinsichtlichder blind übertragenenDaten erneut zu berechnen, (6) den neu berechneten Ausgangs-Garantiecodemit dem Eingangs-Garantiecode vergleichen, wie er berechnet wurde,als die Daten in den internen Speicher eingespeichert wurden und(7) die Vorrichtung auf höhererEbene darüberinformieren, dass eine Übertragungder Teildaten normal ausgeführtwurde, wenn der neu berechnete Ausgangs-Garantiecode und der Eingangs-Garantiecode übereinstimmen,und die Vorrichtung auf höhererEbene darüberinformieren, dass die Übertragungsder Teildaten nicht normal ausgeführt wurde, wenn der neu berechneteAusgangs-Garantiecode und der Eingangs-Garantiecode nicht übereinstimmen. [0022] Wenneine normale Datenübertragungausgeführtwird, stimmen der Teilausgangs-Garantiecode auf Grundlage der Teildatenund der Eingangs-Garantiecode auf Grundlage aller Daten nicht überein.Demgemäß wird durchVergleichen des Teilausgangs-Garantiecodes mit dem Eingangs-Garantiecodegeklärt,dass die Garantiecode-Berechnungseinheit normal arbeitet. [0023] 1 istein Blockdiagramm, das die Gesamtkonfiguration einer Plattenarrayvorrichtunggemäß einerersten Ausführungsformder Erfindung zeigt; [0024] 2 istein Blockdiagramm, das schematisch die Konfiguration eines CHA zeigt; [0025] 3A istein erläuterndesDiagramm, das die Rahmenstruktur gemäß iSCSI zeigt, und 3B istein erläuterndesDiagramm, das die hierarchische Struktur gemäß iSCSI zeigt; [0026] 4 istein Flussdiagramm, das den Gesamtbetrieb der Plattenarrayvorrichtungveranschaulicht; [0027] 5 istein Flussdiagramm, das die Datenübertragungsverarbeitungdurch den CHA veranschaulicht; [0028] 6 istein Flussdiagramm, das die Verarbeitung für den Fall veranschaulicht,dass Daten neu übertragenwerden; und [0029] 7 istein Blockdiagramm, das schematisch die Konfiguration des CHR zeigt,der zu einer zweiten Ausführungsformgehört,die ein modifiziertes Beispiel ist. [0030] Nachfolgendwerden Ausführungsformen derErfindung auf Grundlage der 1 bis 7 beschrieben. [0031] Inden Ausführungsformenist ein Verfahren zum Steuern eines Kanaladapters offenbart, derin einer Plattenarrayvorrichtung verwendet wird und einen Datenaustauschmit einer Vor richtung auf höhererEbene steuert. Das Verfahren verfügt über die folgenden Schritte:wenn Teildaten von bereits an die Vorrichtung auf höherer Ebene übertragenenDaten erneut an diese zu übertragensind, lesen der Teildaten aus einem internen Speicher und übertragenderselben an die Vorrichtung auf höherer Ebene; Vergleichen einesAusgangs-Garantiecodes, der hinsichtlich aller Daten berechnet wurde,mit einem Eingangs-Garantiecode, der beim Eingeben der Daten inden internen Speicher berechnet wurde; und Ermitteln, dass die Übertragungder Teildaten normal ausgeführtwurde, wenn beide Garantiecodes übereinstimmen. [0032] Einanderes Verfahren zum Steuern eines Kanaladapters ist in den Ausführungsformenoffenbart. Dieses Verfahren umfasst Folgendes: einen ersten Schrittdes Speicherns von Daten aus einem externen Speicher in einen internenSpeicher; einen zweiten Schritt des Berechnens und Aufbewahrens einesEingangs-Garantiecodes hinsichtlich aller Daten, wenn die Datenin den internen Speicher eingegeben werden; einen dritten Schrittdes Lesens der Daten aus dem internen Speicher; einen vierten Schrittdes Berechnens und Aufbewahrens eines Ausgangs-Garantiecodes hinsichtlichaller gelesenen Daten; einen fünftenSchritt des Übertragensder gelesenen Daten an die Vorrichtung auf höherer Ebene; einen sechstenSchritt des Ermittelns, und des Informierens der Vorrichtung aufhöhererEbene, dahingehend, ob die Übertragungnormal ausgeführt wurdeoder nicht, durch Vergleichen des Eingangs- und des Ausgangs-Garantiecodes;einen siebten Schritt des Ermittelns, ob von der Vorrichtung aufhöhererEbene eine Neuübertragungsanforderunghinsichtlich Teildaten der an sie gesendeten Daten vorliegt odernicht; einen achten Schritt des Lesens der Teildaten aus dem internenSpeicher und des Übertragensderselben an die Vorrichtung auf höherer Ebene, wenn eine Anforderungzum Neuübertragen derTeildaten besteht; einen neunten Schritt des erneuten Lesens derim in ternen Speicher gespeicherten Daten; einen zehnten Schrittdes erneuten Berechnens eines Ausgangs-Garantiecodes hinsichtlichaller erneut gelesenen Daten; und einen elften Schritt des Ermittelnsund des Informierens der Vorrichtung auf höherer Ebene, dahingehend, obdie Übertragungnormal ausgeführtwurde oder nicht, durch Vergleichen des erneut berechneten Ausgangs-Garantiecodesund des im zweiten Schritt berechneten Eingangs-Garantiecodes. [0033] Inden Ausführungsformenist auch eine Plattenarrayvorrichtung offenbart. Diese Plattenarrayvorrichtungist mit Folgendem versehen: einem Kanaladapter, der über einKommunikationsnetzwerk mit einer Vorrichtung auf höherer Ebeneverbunden ist und den Datenaustausch mit dieser steuert; einer Speichervorrichtung,die Daten speichert; einem Kanaladapter, der den Datenaustauschmit der Speichervorrichtung steuert; und einem Cachespeicher, deraus der Speichervorrichtung gelesene Daten oder von der Vorrichtungauf höhererEbene empfangene Daten speichert; wobei der Kanaladapter Folgendes aufweist:einen internen Speicher, der Daten vom Cachespeicher speichert;eine Eingangs-Garantiecode-Berechnungseinheit, die einen EingangsGarantiecodehinsichtlich der Daten berechnet und aufrechterhält, wenn Daten in den internenSpeicher gespeichert werden; eine Ausgangs-Garantiecode-Berechnungseinheit,die einen AusgangsGarantiecode hinsichtlich der Daten berechnetund aufrechterhält, wenndie Daten aus dem internen Speicher gelesen werden; eine Kommunikationseinheit,die die aus dem internen Speicher gelesenen Daten an die Vorrichtungauf höhererEbene überträgt; undeine Steuereinheit, die dann, wenn Teildaten der Daten erneut andie Vorrichtung auf höhererEbene zu übertragen sind,(1) die Kommunikationseinheit zum Übertragen der Teildaten andie Vorrichtung auf höhererEbene verwendet, (2) die Ausgangs-Garantiecode-Berechnungseinheitdazu verwendet, den Ausgangs-Garantiecode hinsichtlich der Daten zuberechnen, und die (3) den erneut berechneten Ausgangs-Garantiecode mitdem Eingangs-Garantiecode vergleicht und ermittelt, dass die Übertragungder Daten normal ausgeführtwurde, wenn beide Garantiecodes übereinstimmen. [0034] Nunwird eine erste Ausführungsformder Erfindung auf Grundlage der 1 bis 6 beschrieben.Die 1 ist ein Blockdiagramm, das die Gesamtkonfigurationeiner Plattenarrayvorrichtung 10 zeigt. Die Plattenarrayvorrichtung 10 istmit Kanaladaptern (nachfolgend als CHA abgekürzt) 20, Plattenadaptern(nachfolgend als DKA abgekürzt) 30,einem gemeinsamen Speicher 40, einem Cachespeicher 50,einer Schalteinheit 60 und Plattenlaufwerken 70 versehen.Der CHA 20 und der DKA 30 sind durch Zusammenwirkungeines Steuerprogramms und einer gedruckten Leiterplatte, die miteinem Prozessor und einem Speicher versehen ist, realisiert. [0035] DiePlattenarrayvorrichtung 10 ist über ein KommunikationsnetzwerkCN1 mit mehreren Hostcomputern 1 so verbunden, dass zwischenihr und den Hostcomputern 1 eine bidirektionale Kommunikationmöglichist. Hierbei ist das Kommunikationsnetzwerk CN1 ein Netzwerk, daseine bidirektionale Datenkommunikation entsprechend einem TCP/IP-Protokollwie LAN (Local Area Network) oder dem Internet ausführt. Essei darauf hingewiesen, dass es nicht erforderlich ist, dass allemehreren CHAs 20 eine Datenübertragung auf Grundlage von TCP/IPausführen.Einige der CHAs 20 könneneine Datenübertragungauf Grundlage eines Kommunikationsprotokolls wie SAN, FICON (FibreConnection: registrierte Handelsmarke), ESCON (Enterprise SystemConnection: registrierte Handelsmarke), ACONARC (Advanced ConnectionArchitecture: registrierte Handelsmarke) oder FIBARC (Fibre ConnectionArchitecture: registrierte Handelsmarke) ausführen. [0036] JederHostcomputer 1 ist ein als Server, PC, Workstation, Großrechneroder tragbares Informationsterminal realisierter Computer. Zum Beispielist jeder Hostcomputer 1 über ein anderes Kommunikationsnetzwerkmit mehreren Clientterminals, die außerhalb der Zeichnung positioniertsind, verbunden. Die Hostcomputer 1 lesen auf eine Anforderungvon den Clientterminals hin Daten von der Plattenarrayvorrichtung 10,und schreiben Daten auf diese, wodurch für die Clientterminals Dienstebereitgestellt werden. [0037] DerCHA 20 steuert die Datenübertragung mit den Hostcomputern 1.In der Plattenarrayvorrichtung 10 sind mehrere CHAs 20 (z.B. 4 oder 8) angeordnet. Ein CHA 20 wird entsprechend demTyp der Hostcomputer 1 bereitgestellt, wie als CHA zurVerwendung in einem offenen System oder als CHA zur Verwendung ineinem Großrechnersystem.Bei der vorliegenden Ausführungsformführt mindestenseiner der CHAs 20 eine Datenübertragung auf TCP/IP-Basisaus. Wie es spätergemeinsam mit der 2 beschrieben wird, ist jederCHA 20 mit einer Porteinheit 210, einer Datenübertragungs-Steuereinheit 220,einem Prozessor 230 und einem lokalen Speicher 240 versehen. [0038] DerCHAs 20 empfangen Befehle und Daten, die ein Lesen undSchreiben von Daten von den Hostcomputern 1 anfordern,mit denen sie verbunden sind, und sie arbeiten entsprechend demvon den Hostcomputern 1 empfangenen Befehlen. Wenn z. B.die CHAs 20 einen Datenlesebefehl von den Hostcomputern 1 empfangen,speichern sie den Lesebefehl in den gemeinsamen Speicher 40 ein.Die DKAs 20 nehmen auf den gemeinsamen Speicher 40 nachBedarf Bezug. Wenn die DKAs 30 einen nicht bearbeitetenLesebefehl entdecken, lesen sie Daten von den Plattenlaufwerken 70 undspeichern die Daten in den Cachespeicher 50 ein. Die CHAs 20 lesen diein den Cachespeicher 50 verschobenen Daten und übertragensie, überden lokalen Speicher 240, an den Hostcomputer 1,der fürdie Ausgabe des Befehls verantwortlich ist. Wenn die CHAs 20 eineDatenschreibanforderung von den Hostcomputern 1 empfangen,speichern sie den Schreibbefehl in den gemeinsamen Speicher 40 ein,und sie speichern die empfangenen Daten in den Cachespeicher 50 ein. DieDKAs 30 speichern, in einem vorbestimmten Plattenlaufwerk 70 undentsprechend dem im gemeinsamen Speicher 40 gespeichertenBefehl, die in den Cachespeicher 50 gespeicherten Datenab. [0039] DieDKAs 30 steuern die Datenkommunikation mit den Plattenlaufwerken 70.Innerhalb der Plattenarrayvorrichtung 10 können mehrereDKAs 30 (z. B. 4 oder 8) angeordnet sein. Die DKAs 30 steuern dieDatenkommunikation mit den Plattenlaufwerken 70, und siesind jeweils mit einer Prozessoreinheit, einer Datenkommunikationseinheitund einem lokalen Speicher versehen (von denen nichts dargestelltist). Die DKAs 30 und die Plattenlaufwerke 70 sind über einKommunikationsnetzwerk CN2 wie ein SAN verbunden, und sie führen eineDatenübertragungin Blockeinheiten entsprechend dem Faserkanalprotokoll aus. DieDKAs 30 überwachennach Bedarf die Zuständeder Plattenlaufwerke 70, und die Überwachungsergebnisse werden über eininternes Netzwerk CN3 an einen SVP (Service Processor) 2 geliefert. [0040] DiePlattenlaufwerke 70 sind als Festplatten-Laufwerke (HDD)oder als Halbleiterspeicher-Vorrichtungen realisiert. Hierbei kanneine RAID-Gruppe 80 zum Beispiel mit vier Plattenlaufwerken 70 konfiguriertsein. Jede RAID-Gruppe 80 ist eine Plattengruppe, die eineredundante Speicherung von Daten entsprechend z. B. RAID 5 (ohneBeschränkungauf RAID 5) realisiert. In physikalischen Speicherbereichen,wie sie durch die RAID-Gruppen 80 gebildet sind, kann mindestensein logischer Datenbereich 81 (LU) eingestellt sein, beidem es sich um einen logischen Speicherbereich handelt. Im LU 81 sindein Benutzerbereich, auf den die Hostcomputer 1 zugreifen,und ein Systembereich, der bei der Speicherung von Steuerinformationverwendet wird, eingetragen. [0041] Dergemeinsame Speicher 40 besteht aus einem nichtflüchtigenSpeicher, und er speichert Steuerinformation und Verwaltungsinformation.Der Cachespeicher 50 ist ein Beispiel eines "externes Speichers", und er speicherthauptsächlichDaten. [0042] DerSVP 2 ist ein Computer zum Verwalten und Überwachender Plattenarrayvorrichtung 10. Der SVP 2 sammeltverschiedene Typen von Umgebungsinformation und Attributinformationvon den CHAs 20 und den DKAs 30 über dasinnerhalb der Plattenarrayvorrichtung 10 angeordnete KommunikationsnetzwerkCN3. Zu Beispielen von Information, die der SVP 2 sammelt,gehörendie Vorrichtungskonfiguration, Spannungsalarme, Temperaturalarme unddie Eingangs/Ausgangs-Geschwindigkeit (IOPS). Das Kommunikationsnetzwerk 3 istals LAN konfiguriert. Der Systemadministrator kann eine Einstellungder RAID-Konfiguration und eine Sperrverarbeitung für verschiedeneGerätegruppentypen(CHA, DKA, Plattenlaufwerke usw.) über eine vom SVP 2 bereitgestellteBenutzerschnittstelle ausführen. [0043] Die 2 istein Blockdiagramm, das schematisch die Konfiguration des CHA 20 zeigt.Der CHA 20 ist mit der Porteinheit 210, der Datenübertragungs-Steuereinheit 220,dem Prozessor 230 und dem örtlichen Speicher 240 versehen. [0044] DiePorteinheit 210, die ein Beispiel einer "Kommunikationseinheit" ist, ist mit einemSendeempfänger 211 undeiner Protokoll-Steuereinheit 212 versehen. Der Sendeempfänger 211 führt über das KommunikationsnetzwerkCN1 eine Datenkommunikation mit den Hostcomputern 1 entsprechendeinem Steuerbefehl von der Protokoll-Steuereinheit 212 aus.Die Protokoll- Steuereinheit 212 steuertden Datenübertragungsvorgangmit den Hostcomputern 1 durch Steuern des Betriebs desSendeempfängers 211 aufden Steuerbefehl vom Prozessor 230 hin. [0045] DieDatenübertragungs-Steuereinheit 220 führt einejeweilige Steuerung der Datenübertragung zwischendem Cachespeicher 50 und dem lokalen Speicher 240 sowieder Datenübertragungzwischen diesem und der Porteinheit 210 aus. Die Datenübertragungs-Steuereinheit 220 steuertdie Datenübertragungzwischen dem Cachespeicher 50 und dem lokalen Speicher 220 sowiedie Datenübertragungzwischen der Porteinheit 210 und dem lokalen Speicher 240 durchDMA (Direct Memory Access) ohne Eingreifen des Prozessors 230. [0046] DieDatenübertragungs-Steuereinheit 220 ist miteiner Eingangs-Garantiecode-Berechnungseinheit 221 undeiner Ausgangs-Garantiecode-Berechnungseinheit 222 versehen.Die Eingangs-Garantiecode-Berechnungseinheit 221 und dieAusgangs-Garantiecode-Berechnungseinheit 222 sind Beispielevon "Garantiecode-Berechnungseinheiten". Die Eingangs-Garantiecode-Berechnungseinheit 221 erzeugthinsichtlich vom Cachespeicher 50 in den lokalen Speicher 240 eingegebenDaten einen Garantiecode (z. B. CRC usw.), und sie bewahrt diesenauf. Die Ausgangs-Garantiecode-Berechnungseinheit 222 erzeugthinsichtlich vom lokalen Speicher 240 an die Porteinheit 210 ausgegebenenDaten einen Garantiecode, und sie bewahrt diesen auf. Obwohl dieGarantiecode-Berechnungseinheiten 221 und 222 jeweilsals Hardwareschaltungen konfiguriert sind, besteht keine Beschränkung für sie hierauf. Eskönnenalle oder einige der Garantiecode-Berechnungsfunktionen auch durchein Computerprogramm realisiert sein. [0047] EinEingangs-Garantiecode GD1, wie ihn die Eingangs-Garantiecode-Berechnungseinheit 221 berechnet,wird dann erzeugt, wenn Daten in den lokalen Speicher 240 eingegebenwerden. [0048] Ausgangs-GarantiecodesGD2 und GD3, wie sie die Ausgangs-Garantiecode-Berechnungseinheit 222 berechnet,werden erzeugt, wenn Daten aus dem lokalen Speicher 240 ausgegebenwerden. Demgemäß kann derEingangs-Garantiecode als Eingangs-Garantiecode oder Garantiecodezum Datenlesezeitpunkt realisiert sein, und die Ausgangs-Garantiecodeskönnenals Ausgangs-Garantiecodes oder als Garantiecodes beim Lesen vonDaten realisiert sein. [0049] DerProzessor 230 steuert den Gesamtbetrieb des CHA 20,und er gibt geeignete Steuerbefehle an die Porteinheit 210 unddie Datenübertragungs-Steuereinheit 220 aus.Der Prozessor 230 führteine späterbeschriebene Verarbeitung in Zusammenwirkung mit der Porteinheit 210 undder Datenübertragungs-Steuereinheit 220 aus. [0050] Derlokale Speicher 240 ist innerhalb des CHA 20 angeordnet,und er erfüllteine Funktions als Datenpuffer. Wenn der lokale Speicher 240 Datenan die Hostcomputer 1 überträgt, werdenvorbestimmte Daten aus dem Cachespeicher 50 gelesen undin den lokalen Speicher 240 eingespeichert. [0051] Wiees in der 2 dargestellt ist, lesen die DKAs 30,wenn die Hostcomputer 1 Daten RD anfordern, die angefordertenDaten RD aus den Plattenlaufwerken 70, sie speichern dieDaten in den Cachespeicher 50 ein. Die Datenübertragungs-Steuereinheit 220 liestdie im Cachespeicher 50 abgespeicherten Daten RD, und sie überträgt sie anden lokalen Speicher 240. In diesem Fall wird durch dieEingangs-Garantiecode-Berechnungseinheit 221 ein Eingangs-Garantiecodehinsichtlich der Daten RD berechnet. [0052] Dieim lokalen Speicher 240 gespeicherten Daten RD werden ausdem lokalen Speicher 240 gelesen und durch die Datenübertragungs-Steuereinheit 220 andie Porteinheit 210 über tragen.In diesem Fall wird durch die Ausgangs-Garantiecode-Berechnungseinheit 222 einAusgangs-Garantiecode hinsichtlich der Daten RD berechnet. [0053] Diean die Porteinheit 210 übertragenenDaten RD werden entsprechend dem TCP/IP-Protokoll in Pakete unterteiltund vom Sendeempfänger 211 an dieHostcomputer 1 gesendet. Der Eingangs-Garantiecode undder Ausgangs-Garantiecode werden verglichen, und wenn beide Garantiecodes übereinstimmen,ist es möglich,zu garantieren, dass die an die Hostcomputer 1 gesendetenDaten die angeforderten Daten RD sind. [0054] Wennin irgendeiner der an die Hostcomputer 1 gesendeten DatenRD irgendeine Art von Störungauftrat, fordern die Hostcomputer 1 die Übertragungvon Teildaten RDp an, die auf Grund der Störung nicht normal empfangenwerden konnten. In diesem Fall werden die angeforderten TeildatenRDp aus den im lokalen Speicher 240 gespeicherten DatenRD gelesen und überdie Porteinheit 210 erneut übertragen. [0055] Danachwerden alle im lokalen Speicher 240 gespeicherten DatenRD blind an die Porteinheit 210 übertragen, und der Ausgangs-Garantiecodeder Daten RD wird erneut mittels der Blindübertragung berechnet. Die DatenRD, die blind an die Porteinheit 210 übertragen wurden, werden verworfen,ohne dass sie nach außengesendet worden wären.Der erneut berechnete Ausgangs-Garantiecode und der Eingangs-Garantiecode,wie er berechnet wurde, als die Daten in den lokalen Speicher 240 eingespeichert wurden,werden verglichen, wodurch es möglichist, (indirekt) zu garantieren, ob die zuvor gesendeten TeildatenRDp normale Daten sind oder nicht. [0056] Die 3A und 3B sinderläuterndeDiagramme, die die Konfiguration von Daten zeigen, wie sie vom CHA 20 andie Hostcomputer 1 gesendet werden. Wie es in der 3A darge stelltist, ist ein iSCSI-Rahmen mit einem Kopf 300 mit einer MAC(MediaAccess Control)-Adresse, einem IP-Paket 310, einem TCP-Paket 320 undeiner iSCSI-PDU (Protocol Data Unit) 330 versehen. Innerhalbder PDU 330 sind SCSI-Befehle, Daten und SCSI-Antwortengespeichert. Das heißt,dass durch Einkapseln der SCSI-Befehle und der Daten im TCP-Paket SCSI-Daten über einIP-Netzwerk gesendet und empfangen werden können. [0057] Die 3B istein erläuterndesDiagramm, das die hierarchische Struktur des iSCSI-Protokolls zeigt.Beginnend in der Reihenfolge vom Boden der Hierarchie aus sind eineDatenübertragungsschicht/physikalischeSchicht, eine IP-Schicht,eine TCP-Schicht, eine iSCSI-Schicht, eine SCSI-Schicht und eine Anwendungsschicht übereinandergelegt. In der Anwendungsschicht (Dateisystem auf dem Hostcomputerund CHA) wird eine Datenübertragungsin Blockeinheiten ausgeführt.In der SCSI-Schicht werden Sende- und Empfangsvorgänge für Datenunter Verwendung von SCSI-Befehlen ausgeführt. In der SCSI-Schicht werdenAdressen durch eine Ziel-ID, eine LU-Nummer und eine LBA (LogicalBlock Address) gekennzeichnet. In der iSCSI-Schicht werden Adressendurch iSCSI-Namen gekennzeichnet. In der TCP-Schicht werden Portnummernverwendet, und in der IP-Schicht werden IP-Adressen verwendet. DieiSCSI-Schicht ist zwischen der SCSI-Schicht und der TCP-Schicht positioniert,sie kapselt von der SCSI-Schicht empfangene Daten ein, und sie erzeugtdie iSCSI-PDU 330 und liefert diese an die TCP-Schicht.Auch extrahiert die iSCSI-SchichtSCSI-Befehle und -daten aus der von der TCP-Schicht empfangeneniSCSI-PTU 330, und sie liefert diese an die SCSI-Schicht. [0058] Die 4 istein Flussdiagramm, das schematisch den Gesamtbetrieb der Plattenarrayvorrichtungzeigt. Als Erstes führendie Hostcomputer 1 einen Einlockvorgang in den CHA 20 aus,und sie führeneine Login-Berechnungsprüfungaus (S1). Als Nächstesfordern die Hostcomputer 1 eine Datenübertragung hinsichtlich desCHA 20 durch Senden eines Lesebefehls an (S2). Wenn dieCHAs 20 die Anforderung von den Hostcomputern 1 empfangen,fordern sie einen Datenlesevorgang hinsichtlich der DKAs 30 durchAbspeichern des Lesebefehls im gemeinsamen Speicher 40 an(S3). [0059] DieDKAs 30 lesen die Daten aus den Plattenlaufwerken 70 (S4),und sie speichern die Daten in den Cachespeicher 50 ein(S5). Die CHAs 20 lesen die im Cachespeicher 50 gespeichertenDaten (S6), und sie übertragendie Daten an die Hostcomputer 1 (S7). Wenn die Datenübertragungan die Hostcomputer 1 abgeschlossen ist, informieren dieCHAs 20 die Hostcomputer 1 über einen normalen Zustand,der repräsentiert,dass die Datenübertragungnormal ausgeführtwurde (S8). [0060] Essei darauf hingewiesen, dass dann, wenn die angeforderten Datenbereits im Cachespeicher 50 abgespeichert sind, die Dateninnerhalb desselben an die CHAs 20 gelesen werden. Genauergesagt, wird, wenn die Porteinheit 210 den einen Datenlesevorgangerfordernden iSCSI-Befehlsrahmen empfängt, dieser Befehl in den Prozessor 230 eingegeben,und der Befehlsinhalt wird durch diesen interpretiert. Der Prozessor 230 sorgtfür einenfür dieDatenübertragungerforderlichen Cachebereich im Cachespeicher 50, und erweist die Datenübertragungs-Steuereinheit 220 zumLesen der Daten an. [0061] Selbstwenn die Datenübertragungvon den CHAs 20 normal ausgeführt wurde, existieren Fälle, indenen die Hostcomputer 1 einige der Daten nicht lesen können. Wennz. B. ein Stau im Netzwerk existiert oder die Verarbeitungsbelastungder Hostcomputer 1 groß ist,gehen manchmal einige Pakete währendder Übertragungverloren, oder die Daten werden durcheinan der gebracht. In einemderartigen Fall fordern die Hostcomputer 1 die CHAs 20 dazuauf, die Daten erneut zu übertragen,die nicht normal gelesen werden konnten. [0062] Wenndie CHAs 20 die Anforderung zur Neuübertragung der Teildaten empfangen,lesen sie die im Cachespeicher 50 verbliebenen Daten (S10),und sie übertragennur die angeforderten Teildaten erneut an die Hostcomputer 1 (S11).Es sei darauf hingewiesen, dass dann, wenn Daten innerhalb des lokalen Speichers 240 verbliebensind, die CHAs 20 die Teildaten auch aus dem lokalen Speicher 240 lesenkönnenund sie diese Daten erneut an die Hostcomputer 1 übertragenkönnen.Wenn die CHAs 20 die Übertragungder Teildaten beenden, ermitteln sie, ob die Datenübertragungnormal ausgeführtwurde oder nicht, und sie übertrageneinen normalen oder einen anormalen Zustand an die Hostcomputer 1 (S12). [0063] Die 5 istein Flussdiagramm, das ein spezielles Beispiel einer Datenübertragungsverarbeitungdurch den CHA 20 zeigt. Das in der 5 dargestellteFlussdiagramm entspricht der Verarbeitung, wie sie in S7 und S8der 4 dargestellt ist. Auch wird die Datenübertragungsverarbeitungim in der 5 dargestellten Flussdiagrammdurch den CHA 20 ausgeführt.Genauer gesagt, wird die Datenübertragungsverarbeitungdurch Zusammenwirkung des Prozessors 230, der Porteinheit 210 undder Datenübertragungs-Steuereinheit 220 ausgeführt. [0064] DieDatenübertragungs-Steuereinheit 220 überträgt die imCachespeicher 50 gespeicherten Daten RD auf Grundlage einerAnweisung vom Prozessor 230 an den lokalen Speicher 240 (S21).In diesem Fall berechnet die Eingangs-Garantiecode-Berechnungseinheit 221 denEingangs-Garantiecode GD1 hinsichtlich der im lokalen Speicher 240 gespeichertenDaten RD und bewahrt ihn auf (S22). [0065] DieDatenübertragungs-Steuereinheit 220 liest,auf Grundlage einer Anweisung vom Prozessor 230, die imlokalen Speicher 240 gespeicherten Daten RD, und sie überträgt diesean die Porteinheit 210 (S23). In diesem Fall berechnetdie Ausgangs Garantiecode-Berechnungseinheit 222 den Ausgangs-GarantiecodeGD3 hinsichtlich der vom lokalen Speicher 240 gelesenenDaten und bewahrt ihn auf (S24). [0066] Diean die Porteinheit 210 übertragenenDaten RD werden durch die Protokoll-Steuereinheit 212 eingekapseltund überdas Kommunikationsnetzwerk CN1 vom Sendempfänger 211 an die Hostcomputer 1 gesendet(S25). [0067] AlsNächstesermitteln die CHAs 20, ob während der Übertragung der Daten RD eineStörung aufgetretenist oder nicht (S26). Unter Störungwerden ein Verlust oder eine fehlende Zustellung von Paketen sowieDatenfehler verstanden. Wenn keine Störung aufgetreten ist, d.h.,wenn alle Daten RD normal gesendet wurde (S26: NEIN), vergleichendie CHAs 20 den Eingangs-Garantiecode GD1 mit dem Ausgangs-GarantiecodeGD3, um zu ermitteln, ob sie übereinstimmenoder nicht (S27). Wenn beide Garantiecodes GD1 und GD3 übereinstimmen(S27: JA), übertragendie CHAs 20 den normalen Zustand an die Hostcomputer 1 (S28).Wenn die beiden Garantiecodes GD1 und GD3 nicht übereinstimmen (S27: NEIN), übertragendie CHAs 20 den anormalen Zustand an die Hostcomputer 1 (S29). [0068] Wenneine Störungerkannt wird, wenn die Daten RD übertragenwerden (S26: JA), wird eine Neuübertragungsverarbeitungausgeführt(S30). Ein spezielles Beispiel dieser Neuübertragungsverarbeitung wirdgemeinsam mit dem Flussdiagramm der 6 beschrieben.Die Neuübertragungsverarbeitungwird durch die CHAs 20 ausgeführt. [0069] Wenndie CHAs 20 eine Neuübertragungsanforderungvon den Hostcomputern 1 empfangen (S301), ermitteln sie,ob die fürdie Neuübertragung angefordertenDaten Teile der Daten RD sind oder nicht (S302). Der Fall, bei demes sich nicht um eine Anforderung zur Übertragung eines Teils derDaten RD handelt (S302: NEIN), ist ein Fall, bei dem alle DatenRD angefordert werden. So kehrt die Verarbeitung zu S23 in der 5 zurück und dieDaten RD werden neu übertragen. [0070] Wenndie Hostcomputer 1 eine Neuübertragung hinsichtlich einesTeils der Daten RD anfordern (S302: JA), übertragen die CHAs 20 dieangeforderten Teildaten RDp vom lokalen Speicher 240 andie Protokoll-Steuereinheit 212 der Porteinheit 210 (S303).Die Teildaten RDp werden eingekapselt und vom Sendeempfänger 211 andie Hostcomputer 1 gesendet (S304). In diesem Fall berechnetdie Ausgangs Garantiecode-Berechnungseinheit 222 den Ausgangs-GarantiecodeGD2 hinsichtlich der Teildaten RDp und bewahrt ihn auf (S305). [0071] DieCHAs 20 ermitteln, ob der Eingangs-Garantiecode GD1 undder Ausgangs-Garantiecode (Teilausgangs-Garantiecode) GD2, der hinsichtlich derTeildaten RDp erhalten wurde, übereinstimmen (S306).Da der Eingangs-Garantiecode GD1 erzeugt wird, wenn die Daten RDin den lokalen Speicher 40 eingespeichert werden, stimmener und der Teilausgangs-Garantiecode GD2 nicht überein, wenn die Datenübertragunginnerhalb der CHAs normal ist. Wenn der Eingangs-Garantiecode GD1und der Teilausgangs-Garantiecode GD2 übereinstimmen (S306: NEIN),wird eine Fehlerverarbeitung ausgeführt (S307). Bei dieser Fehlerverarbeitungwird der anormale Zustand an die Hostcomputer 1 geliefert. [0072] Wennder Eingangs-Garantiecode GD1 und der Teilausgangscode GD2 nicht übereinstimmen (S306:JA), ist klargestellt, dass die Datenübertragung innerhalb der CHAsnormal ausgeführt wurde unddass ein Teil der Daten RD in S304 gesendet wurde. Als Nächstes führen dieCHAs 20 eine Blindübertragungaller im lokalen Speicher 240 gespeicherten Daten RD andie Protokoll-Steuereinheit 212 der Porteinheit 210 aus(S308). Die Protokoll-Steuereinheit 212 empfängt dieblind übertragenenDaten RD, jedoch werden diese ohne Einkapselung verworfen. Auf Grundder Blindübertragungder Daten RD vom lokalen Speicher 240 an die Porteinheit 210 berechnetdie Ausgangs-Garantiecode-Berechnungseinheit 221 erneutden Ausgangs-Garantiecode GD3 hinsichtlich der Daten RD und bewahrtihn auf (S309). [0073] DieCHAs 20 ermitteln, ob der erneut berechnete Ausgangs-Garantiecode GD3und der bereits erzeugte Eingangs-Garantiecode GD1 übereinstimmenoder nicht (S310). Wenn beide Garantiecodes GD1 und GD3 übereinstimmen(S310: JA), ermitteln die CHAs 20, dass die in S304 gesendetenTeildaten RDp normale Daten sind, und sie übertragen den normalen Zustand,der repräsentiert,dass eine normale Datenneuübertragungausgeführtwurde, an die Hostcomputer 1 (S311). Wenn die beiden GarantiecodesGD1 und GD3 nicht übereinstimmen(S310: NEIN), übertragendie CHAs 20 den anormalen Zustand, der repräsentiert,dass die Teildaten RDp anormale Daten sind. [0074] Gemäß der vorliegendenAusführungsform kannselbst dann, wenn die Hostcomputer 1 eine Neuübertragunghinsichtlich der Teildaten RDp anfordern, die einige der Daten RDaufbauen, ein Datengarantiervorgang durch indirektes Beweisen, dass dieTeildaten RDp normale Daten sind, ausgeführt werden. So kann selbstin einer Umgebung, in der hinsichtlich eines Teils gesendeter Datenkein Datengarantiervorgang ausgeführt werden kann, wie bei einemFaserkanalprotokoll, dem Grunde nach ein Datengarantiervorgang für Teildatenausgeführtwerden. So kann dafürgesorgt werden, dass ein fürdas Faserkanalprotokoll entwickelter CHA 20 einem IP-Netzwerkgenügt, undes kann ein Datengarantiervorgang ausgeführt werden. Auch können beider vorliegenden Ausführungsformeine Neuübertragung vonTeildaten RDp und ein Datengarantiervorgang selbst bei einer Konfigurationausgeführtwerden, bei der in der Porteinheit 210 kein Datenpuffervorhanden ist. [0075] Die 7 zeigtschematisch die Konfiguration eines CHA 20, der einer zweitenAusführungsform entspricht,die ein modifiziertes Beispiel der ersten Ausführungsform ist. Die vorliegendeAusführungsformist dadurch gekennzeichnet, dass sowohl der Eingangs-Garantiecodeals auch die Ausgangs-Garantiecodes durch eine Garantiecode-Berechnungseinheit 223 berechnetund aufbewahrt werden. [0076] Essei darauf hingewiesen, dass der Erfindung nicht auf die oben beschriebeneAusführungsformenbeschränktist. Der Fachmann kann innerhalb des Schutzumfangs der Erfindungverschiedene Hinzufügungenoder Änderungenvornehmen. Zum Beispiel wurde zwar ein CRC als Beispiel für die Garantiecodesbeschrieben, jedoch ist die Erfindung nicht hierauf beschränkt, sondernsie kann verschiedene Garantiecodes verwenden.
权利要求:
Claims (10) [1] Kanaladapter, der in einer Plattenarrayvorrichtungverwendet wird und einen Datenaustausch mit einer Vorrichtung aufhöhererEbene steuert und der mit Folgendem versehen ist: – eineminternen Speicher, der Daten von einem externen Speicher speichert; – einerGarantiecode-Berechnungseinheit, die einen Eingangs-Garantiecode hinsichtlichder in den internen Speicher eingegebenen Daten berechnet und einenAusgangs-Garantiecode hinsichtlich der aus dem internen Speichergelesenen Daten berechnet, wobei die Garantiecodes in der Garantiecode-Berechnungseinheitaufbewahrt werden können; – einerKommunikationseinheit, die die aus dem internen Speicher gelesenenDaten an die Vorrichtung auf höhererEbene überträgt; und – einerSteuereinheit, die dann, wenn Teildaten der Daten erneut an dieVorrichtung auf höhererEbene zu übertragensind, die Kommunikationseinheit zum Übertragen der Teildaten andie Vorrichtung auf höhererEbene verwendet, den Eingangs-Garantiecode und den erneut durchdie Garantiecode-Berechnungseinheithinsichtlich der Daten berechneten Ausgangs-Garantiecode vergleichtund ermittelt, dass die Übertragungder Daten normal ausgeführt wurde,wenn beide Garantiecodes übereinstimmen. [2] Kanaladapter nach Anspruch 1, bei dem die Garantiecode-Berechnungseinheitden Eingangs-Garantiecode oder den Ausgangs-Garantiecode hinsichtlichaller Daten berechnet, wie sie in den internen Speicher eingegebenund aus ihm ausgegeben werden. [3] Kanaladapter nach Anspruch 1, bei dem dann, wenndie Teildaten erneut an die Vorrichtung auf höherer Ebene zu übertragensind, die Steuereinheit (1) die Kommunikationseinheit dazuverwendet, die Teildaten an die Vorrichtung auf höherer Ebenezu übertragen, (2)die Daten aus dem internen Speicher liest und sie blind an die Kommunikationseinheit überträgt, (3)die Garantiecode-Berechnungseinheit dazu verwendet, den Ausgangs-Garantiecodehinsichtlich der blind übertragenenDaten erneut zu berechnen, (4) den neu berechneten Ausgangs-Garantiecode mitdem Eingangs-Garantiecode vergleicht, wie er berechnet wurde, alsdie Daten in den internen Speicher eingespeichert wurden; und (5)die Vorrichtung auf höhererEbene darüberinformiert, dass die Übertragungder Teildaten normal ausgeführtwurde, wenn der neu berechnete Ausgangs-Garantiecode und der Eingangs-Garantiecode übereinstimmen,und sie die Vorrichtung auf höhererEbene darüberinformiert, dass die Übertragungder Teildaten nicht normal ausgeführt wurde, wenn der neu berechneteAusgangs-Garantiecode und der Eingangs-Garantiecode nicht übereinstimmen. [4] Kanaladapter nach Anspruch 1, bei dem dann, wenndie Teildaten erneut an die Vorrichtung auf höherer Ebene zu übertragensind, die Steuereinheit (1) Teildaten aus dem internen Speicherliest und sie an die Kommunikationseinheit überträgt, um dadurch die Teildatenan die Vorrichtung auf höhererEbene zu übertragen, (2)die Garantiecode-Berechnungseinheit dazu verwendet, einen Teilausgangs-Garantiecodehinsichtlich der aus dem internen Speicher gelesenen Teildaten zuberechnen, (3) klärt,dass der Teilausgangs-Garantiecode und der Eingangs-Garantiecode,wie er berechnet wurde, als die Daten in den internen Speicher eingespeichert wurden,nicht überein stimmen, (4)die Daten aus dem internen Speicher liest und sie blind an die Kommunikationseinheit überträgt, (5)die Garantiecode-Berechnungseinheit dazu verwendet, den Ausgangs-Garantiecodehinsichtlich der blind übertragenenDaten erneut zu berechnen, (6) den neu berechneten Ausgangs-Garantiecode mitdem Eingangs-Garantiecode vergleicht, wie er berechnet wurde, alsdie Daten in den internen Speicher eingespeichert wurden, und (7)die Vorrichtung auf höhererEbene darüberinformiert, dass die Übertragungder Teildaten normal ausgeführtwurde, wenn der neu berechnete Ausgangs-Garantiecode und der Eingangs-Garantiecode übereinstimmenund sie die Vorrichtung auf höhererEbene darüberinformiert, dass die Übertragungder Teildaten nicht normal ausgeführt wurde, wenn der neu berechneteAusgangs-Garantiecode und der Eingangs-Garantiecode nicht übereinstimmen. [5] Kanaladapter nach Anspruch 2 oder 3, bei dem dieDaten, die durch die Steuereinheit blind an die Kommunikationseinheit übertragenwerden, verworfen werden, ohne dass sie an die Vorrichtung auf höherer Ebene übertragenwerden. [6] Kanaladapter nach Anspruch 1, bei dem der Datenaustauschzwischen ihm und der Vorrichtung auf höherer Ebene entsprechend einemTCP/IP-Protokoll ausgeführtwird und der Datenaustausch zwischen ihm und dem externen Speicherentsprechend einem Faserkanalprotokoll ausgeführt wird. [7] Verfahren zum Steuern eines Kanaladapters, der ineiner Plattenarrayvorrichtung verwendet wird und den Datenaustauschmit einer Vorrichtung auf höhererEbene steuert, mit den folgenden Schritten: – wenn Teildatenbereits an die Vorrichtung auf höhererEbe ne übertragenerDaten neu an diese zu übertragensind, – Lesender Teildaten aus einem internen Speicher und Übertragen derselben an dieVorrichtung auf höhererEbene; – Vergleicheneines hinsichtlich aller Daten berechneten Ausgangs-Garantiecodesmit einem Eingangs-Garantiecode, wie er berechnet wurde, als die Datenin den internen Speicher eingegeben wurden; – Ermitteln,dass die Übertragungder Teildaten normal ausgeführtwurde, wenn beide Garantiecodes übereinstimmen. [8] Verfahren zum Steuern eines Kanaladapters, der ineiner Plattenarrayvorrichtung verwendet wird und den Datenaustauschmit einer Vorrichtung auf höhererEbene steuert, umfassend: – einenersten Schritt des Speicherns von Daten von einem externen Speicherin einen internen Speicher; – einen zweiten Schritt desBerechnens und Aufbewahrens eines Eingangs-Garantiecodes hinsichtlich allerDaten, wenn die Daten in den internen Speicher eingegeben werden; – einendritten Schritt des Lesens der Daten aus dem internen Speicher; – einenvierten Schritt des Berechnens und Aufbewahrens eines Ausgangs-Garantiecodeshinsichtlich aller gelesenen Daten; – einen fünften-Schritt des Übertragensder gelesenen Daten an die Vorrichtung auf höherer Ebene; – einensechsten Schritt des Ermittelns und Informierens der Vorrichtungauf höhererEbene, dahingehend, ob die Übertragungnormal ausgeführtwurde oder nicht, durch Vergleichen des Eingangs-Garantiecodes unddes Ausgangs-Garantiecodes; – einen siebten Schritt desErmittelns, ob von der Vorrichtung auf höherer Ebene hinsichtlich Teildatender an sie gesendeten Daten eine Neuübertragungsanforderung existiertoder nicht; – einenachten Schritt des Lesens der Teildaten aus dem in ternen Speicherund des Übertragensderselben an die Vorrichtung auf höherer Ebene, wenn eine Anforderungzum Neuübertragender Teildaten existiert; – einenneunten Schritt des erneuten Lesens der im internen Speicher gespeichertenDaten; – einenzehnten Schritt des erneuten Berechnens eines Ausgangs-Garantiecodeshinsichtlich aller erneut gelesenen Daten; und – einenelften Schritt des Ermittelns, und des Informierens der Vorrichtungauf höhererEbene, dahingehend, ob die Übertragungnormal ausgeführtwurde oder nicht, durch Vergleichen des erneut berechneten Ausgangs-Garantiecodesund des im zweiten Schritt berechneten Eingangs-Garantiecodes. [9] Plattenarrayvorrichtung mit: – einemKanaladapter, der überein Kommunikationsnetzwerk mit einer Vorrichtung auf höherer Ebene verbundenist und den Datenaustausch mit dieser steuert; – einerSpeichervorrichtung, die Daten speichert; – einem Kanaladapter, der denDatenaustausch mit der Speichervorrichtung steuert; und – einemCachespeicher, der aus der Speichervorrichtung gelesene Daten odervon der Vorrichtung auf höhererEbene empfangene Daten speichert; – wobei der Kanaladapter Folgendesaufweist: – eineninternen Speicher, der Daten vom Cachespeicher speichert; – eine Eingangs-Garantiecode-Berechnungseinheit, dieeinen Eingangs-Garantiecode hinsichtlich der Daten berechnet undaufrechterhält,wenn Daten in den internen Speicher gespeichert werden; – eine Ausgangs-Garantiecode-Berechnungseinheit, dieeinen Ausgangs-Garantiecode hinsichtlich der Daten berechnet undaufrechterhält,wenn die Daten aus dem internen Speicher gelesen werden; – eine Kommunikationseinheit,die die aus dem internen Speicher gelesenen Daten an die Vorrichtungauf höhererEbene überträgt; und – eine Steuereinheit,die dann, wenn Teildaten der Daten erneut an die Vorrichtung aufhöhererEbene zu übertragensind, (1) die Kommunikationseinheit zum Übertragen der Teildaten andie Vorrichtung auf höhererEbene verwendet, (2) die Ausgangs-Garantiecode-Berechnungseinheitdazu verwendet, den Ausgangs-Garantiecode hinsichtlich der Datenzu berechnen, und die (3) den erneut berechneten Ausgangs-Garantiecodemit dem Eingangs-Garantiecode vergleicht und ermittelt, dass die Übertragung derDaten normal ausgeführtwurde, wenn beide Garantiecodes übereinstimmen. [10] Kommunikationseinheit, die über eine Datenübertragungs-Steuereinheit miteinem internen Speicher verbunden ist und die aus diesem gelesenen Datenan eine Vorrichtung auf höhererEbene überträgt, wobei dieseKommunikationseinheit, nachdem sie Teildaten der im internen Speichergespeicherten Daten gelesen hat und diese an die Vorrichtung aufhöherer Ebene übertragenhat, alle Daten aus dem internen Speicher liest und die gelesenenDaten verwirft, ohne sie an die Vorrichtung auf höherer Ebenezu übertragen.
类似技术:
公开号 | 公开日 | 专利标题 US9590923B2|2017-03-07|Reliable link layer for control links between network controllers and switches US20160026529A1|2016-01-28|Retrieving data segments from a dispersed storage network US20140310491A1|2014-10-16|Dispersed storage network with data segment backup and methods for use therewith JP5126621B2|2013-01-23|二重アクティブ・コントローラ内のライト・キャッシュ・データのフェイルオーバーおよびフェイルバック US8117376B2|2012-02-14|Storage system and control method thereof JP4547452B2|2010-09-22|オンチップメモリにおけるデータ健全性のためのcrcを用いる方法および装置 US7631021B2|2009-12-08|Apparatus and method for data replication at an intermediate node TWI293728B|2008-02-21|Network!ai/o processors!aadaptors and operation methods thereof US7412543B2|2008-08-12|Method for controlling storage system, and storage control apparatus US7529816B2|2009-05-05|System for providing multi-path input/output in a clustered data storage network US6493343B1|2002-12-10|System and method for implementing multi-pathing data transfers in a system area network US8301810B2|2012-10-30|SAS storage virtualization controller, subsystem and system using the same, and method therefor US9594510B2|2017-03-14|JBOD subsystem and external emulation controller thereof US7979613B2|2011-07-12|Performance of a storage system US6920580B1|2005-07-19|Negotiated graceful takeover in a node cluster US7603507B2|2009-10-13|Storage system and method of storage system path control JP3993773B2|2007-10-17|ストレージサブシステム、記憶制御装置及びデータコピー方法 US7805564B2|2010-09-28|Display apparatus and its method for displaying connections among a host, a logical unit and a storage system in a virtual storage system US6915379B2|2005-07-05|Storage device for processing an access request from a host and storage system including storage devices US7475167B2|2009-01-06|Offloading data path functions US6598174B1|2003-07-22|Method and apparatus for storage unit replacement in non-redundant array US6708265B1|2004-03-16|Method and apparatus for moving accesses to logical entities from one storage element to another storage element in a computer storage system US7831767B2|2010-11-09|Storage control system, control method for storage control system, port selector, and controller US8560631B2|2013-10-15|Storage system US6604155B1|2003-08-05|Storage architecture employing a transfer node to achieve scalable performance
同族专利:
公开号 | 公开日 US7073092B2|2006-07-04| GB0408432D0|2004-05-19| US20050114574A1|2005-05-26| GB2408601A|2005-06-01| FR2862776A1|2005-05-27| JP2005157624A|2005-06-16| JP4426261B2|2010-03-03| GB2408601B|2006-02-15|
引用文献:
公开号 | 申请日 | 公开日 | 申请人 | 专利标题
法律状态:
2005-07-07| OP8| Request for examination as to paragraph 44 patent law| 2014-11-10| R016| Response to examination communication| 2014-11-18| R002| Refusal decision in examination/registration proceedings| 2014-12-23| R003| Refusal decision now final| 2015-03-12| R003| Refusal decision now final|Effective date: 20141223 |
优先权:
[返回顶部]
申请号 | 申请日 | 专利标题 相关专利
Sulfonates, polymers, resist compositions and patterning process
Washing machine
Washing machine
Device for fixture finishing and tension adjusting of membrane
Structure for Equipping Band in a Plane Cathode Ray Tube
Process for preparation of 7 alpha-carboxyl 9, 11-epoxy steroids and intermediates useful therein an
国家/地区
|